package com.pack.demo01;

public class Test {
    public static void main(String[] args) {
        /**
         * 学习思路罗列一下
         * 1、装箱和拆箱基本概念
         * 2、jdk1.5以后 自动装箱和拆箱的操作（int 和 Integer 相互转换）
         * 3、Integer 类的一些常用方法学习
         * 4、Integer 、Int、 String 三者之间相互转换
         */
        System.out.println("包装类的学习");
        // 装箱： 基本数据类型 --> 引用类型
        int num = 100;
        Integer i  = num; // 装箱
        Integer i2 = Integer.valueOf(num); // 装箱
        System.out.println(i);
        System.out.println(i2);

        // 拆箱：引用类型 --> 基本类型
        Integer n = new Integer(1000);
        int num2 = n.intValue();
        System.out.println(n);
        System.out.println(num2);

        // 上述为 jdk1.5之前方法，之后提供了自动装箱拆箱
        int age = 30;
        // 自动装箱
        Integer y_age = age;
        // 自动拆箱
        int age2 = y_age;
        System.out.println(age);
        System.out.println(y_age);
        System.out.println(age2);

        // 基本类型和字符串之间转换
        // 1.基本类型转换成字符串
        int number = 100;
        // 1.1 使用 + 号
        String s = num+"-4654";
        System.out.println(s); // 100-4654
        // 1.2 使用 Integer 中的 toString（）方法
        String s2 = Integer.toString(number);
        String s3 = Integer.toString(num,16); // 转换成为16进制字符串
        System.out.println(s2); // 1000
        System.out.println(s3); // 64

        // 2.字符串转成基本类型
        String str = "150";
        // 使用 Integer.parseXXX()
        int number2 = Integer.parseInt(str);
        int number3 = Integer.valueOf(str); // 也可以
        System.out.println(number2);
        // boolean 字符串形式转换基本数据类型 “true” --> true  非"true" --> false
        String str_bool = "true";
        String str2_bool = "false";
        String str3_bool = "hahaha";
        boolean b1 = Boolean.parseBoolean(str_bool);
        boolean b2 = Boolean.parseBoolean(str2_bool);
        boolean b3 = Boolean.parseBoolean(str3_bool);
        System.out.println(b1); // true
        System.out.println(b2); // false
        System.out.println(b3); // false

    }
}
